﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

// Reviewed
#pragma once
#include <cstdint>
#include "NdbDataSchema.h"
namespace gcmp
{ 
    /// \brief  参数存储类型
    ///
    /// 只允许在最后添加新类型（Count之前）
    SERIALIZABLE_ENUM_CLASS(ParameterStorageType)
    {
        Invalid = 0,        ///< 无效参数存储类型

        None = 1,           ///< 无参数存储类型，要么只需表示这个参数是否存在，要么存储在外部数据源中

        Custom = 2,         ///< 自定义参数存储类型

        Bool = 3,           ///< bool型

        Int = 4,            ///< int型

        Double = 5,         ///< double型

        String = 6,         ///< 字符串型

        Coordinates = 7,    ///< 坐标系统型, 三维坐标系，经常使用故作为基本存储类型

        ElementId = 8,      ///< 项目元素的ID, 这种类型的数据不能跨越族服务，因为在脱离实例创建环境的情况下该数据是无意义的

        BuildingStorey = 9, ///<  项目元素的所属楼层, 这种类型的数据不能跨越族服务，因为在脱离实例创建环境的情况下该数据是无意义的

        Color = 10, ///<  颜色型

        StandardCodeReference = 11,    ///< 标准编码的引用

        Geometry = 12,    ///< 几何类型

        Guid = 13,     ///< Guid类型

        Count = 14          ///< 类型总数

    };
}
